From c30bda46c8eff313dd345136063586199194e3d7 Mon Sep 17 00:00:00 2001 From: "kaf24@firebug.cl.cam.ac.uk" Date: Sun, 30 Oct 2005 16:40:05 +0100 Subject: [PATCH] Small shadow pagetable fixes. Signed-off-by: Jun Nakajima Signed-off-by: Xin B Li --- xen/arch/x86/shadow.c | 3 ++- xen/include/asm-x86/shadow.h | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/xen/arch/x86/shadow.c b/xen/arch/x86/shadow.c index fdd0c5aaf0..7ca116803b 100644 --- a/xen/arch/x86/shadow.c +++ b/xen/arch/x86/shadow.c @@ -1381,7 +1381,8 @@ static int resync_all(struct domain *d, u32 stype) perfc_incrc(resync_l1); perfc_incr_histo(wpt_updates, changed, PT_UPDATES); perfc_incr_histo(l1_entries_checked, max_shadow - min_shadow + 1, PT_UPDATES); - if (unshadow_l1) { + if ( d->arch.ops->guest_paging_levels == PAGING_L4 && + unshadow_l1 ) { pgentry_64_t l2e; __shadow_get_l2e(entry->v, entry->va, &l2e); diff --git a/xen/include/asm-x86/shadow.h b/xen/include/asm-x86/shadow.h index 0a8112c3d3..9c2206ad05 100644 --- a/xen/include/asm-x86/shadow.h +++ b/xen/include/asm-x86/shadow.h @@ -387,7 +387,7 @@ shadow_get_page_from_l1e(l1_pgentry_t l1e, struct domain *d) nl1e = l1e; l1e_remove_flags(nl1e, _PAGE_GLOBAL); - if ( unlikely(l1e_get_flags(l1e) & L1_DISALLOW_MASK) ) + if ( unlikely(l1e_get_flags(nl1e) & L1_DISALLOW_MASK) ) return 0; res = get_page_from_l1e(nl1e, d); -- 2.30.2